import java.util.ArrayList;

import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import types.Client;

@Stateless
public class EJBEntreprise {

	@PersistenceContext
	private EntityManager em;
	
	public void createEntreprise (String n, Float abs, Float ord) {
		Entreprise e = new Entreprise(n, abs, ord);
		em.persist(e);
	}
	
	public void removeEntreprise (Entreprise e) {
		ArrayList<EvenementEntreprise> evenements = e.getEvenementsCrees();
		for (EvenementEntreprise ev : evenements) {
			em.remove(ev);
		}
		em.remove(e);
	}
	
	
	public void createEvenement (String n, Entreprise e, Float abs, Float ord) {
		EvenementEntreprise ev = new EvenementEntreprise(n,e,abs,ord);
		em.persist(ev);
		this.addEvenement(ev, e);
	}
	
	public void createEvenement (String n, Entreprise e) {
		EvenementEntreprise ev = new EvenementEntreprise(n,e);
		em.persist(ev);
		this.addEvenement(ev, e);
	}
	
	
	public void removeEvenement (EvenementEntreprise e) {
		em.remove(e);
	}
	
	
	@SuppressWarnings("unchecked")
	public ArrayList<Entreprise> getEntreprise() {
		return (ArrayList<Entreprise>) em.createQuery("select e from Entreprise e").getResultList();
	}

	@SuppressWarnings("unchecked")
	public ArrayList<EvenementEntreprise> getEvenements(String param) {
                  
		return (ArrayList<EvenementEntreprise>) em.createQuery("select e from EvenementEntreprise e where e.categorie=:param")
                       .setParameter("param",param) 
                       .getResultList();
	}
	
	public ArrayList<EvenementEntreprise> getEvenements(Entreprise e) {
		return e.getEvenementsCrees();
	}
	
	
	
	
}
